package com.shareyi.baseproject.kernel.common.event;


import com.shareyi.baseproject.kernel.common.retry.RetrySubscriberConstant;

/**
 * MQ消息体转换器
 *
 * @author david
 * @date 2020-03-16
 */
public interface MqStringify {

    /**
     * 将event转换为字符串（主要是json）
     *
     * @return
     */
    default String stringifyEvent() {
        return stringifyEvent(RetrySubscriberConstant.SubscriberNames.DEFAULT);
    }


    /**
     * 将event转换为字符串（主要是json）
     * <p>
     * 需要推送MQ消息的，需要重写本方法
     *
     * @param subscriberName 订阅者名称 用于异步重试的时候，找到具体是哪个订阅者抛出的异常；
     * @return
     */
    String stringifyEvent(String subscriberName);
}
